<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2016/11/28
 * Time: 13:45
 */
namespace lib;
class MsgSend extends Model
{
    public $username = "admin";   //短信平台的账号
    public $password = "pe6aiYirei";   //短信平台的密码

    public function __construct()
    {
        parent::__construct();
        $this->table('msg_send');
    }

    /**
     * webPower 短信商
     * @param string $mobile 手机号码
     * @param string $content 短信内容
     * @return bool
     */
    public function webpower_send_sms($mobile, $content) {
        //webservice
        $url = "http://lx.webpowerchina.cn/sms/rest/v1/sms";   //输出的链接地址

        $post_data = array(
            'mobile' => $mobile,
            'content' => $content,
            'campaignID' => 1
        );            //填写参数，mobile手机号码，content短信内容，campaignID活动id（短信平台上面发送一般是在活动下面，跟邮件一样会有一个活动Id)
        $data = $this->webpower_curl($url, $post_data);

        if(isset($data)){
            //保存验证码
            $info = array(
                'mobile' => $mobile,
                'code' => ' ',
                'send_time' => time(),
                'url'=>$url.'?'.http_build_query($post_data),
                'response'=>$data
            );
            $this->add($info);
            $result = json_decode($data, true);
            $status = strtoupper($result['status']);
            if($status == 'OK'){
                return true;
            }else{
                return  false;
            }
        }else{
            return false;
        }
    }

    /**
     * webpower CURL 请求
     * @param $url
     * @param $content
     * @param string $method
     * @return mixed
     */
    public function webpower_curl($url, $content, $method= 'post'){
        //username and password
        $username = $this->username;   //短信平台的账号
        $password = $this->password;   //短信平台的密码

        $data_string = json_encode($content);
        $header = array(
            "Content-Type: application/json",
            "X-HTTP-Method-Override: $method",
            "Authorization: Basic " . base64_encode($username . ":" . $password)
        );

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_FAILONERROR, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);

        curl_setopt($ch,CURLOPT_HTTPHEADER, $header);
        $response = curl_exec($ch);
        return $response ? $response : curl_error($ch);
    }

    /**
     * 猎单宝短信发送 订单状态
     * @param $order_sn 订单号
     * @param $type
     *              采购商  11: 首次报价 12:定标,未支付4日提醒 13:定标,未支付1日提醒  14:支付过期 15:发货提醒
     *                      16:收货1日提醒 17:卖家退出竟标提醒 18:卖家取消订单
     *              供应商  21:中标 22:发货4日提醒 23:发货1日提醒 24:发货过期 25:买家取消 206: 207: 208:
     *                      31: 丢标
     * @return bool
     */
    public function LdbOrderSendSMS($order_sn, $type){
        //订单信息
        $info = D('Ldb/LdbOrder')->getOrderInfo($order_sn);
        //报价商数量
        $map = array('order_sn'=>$order_sn, 'bid_status'=>1);
        $sale_num = M('bid_record')->where($map)->count();
        // 发送信息
        $send_config = array(
            11=>array(
                'content'=>"您的采购单{$order_sn}有人报价，请尽快登录猎芯网，去猎单宝中查看。",
                'mobile'=>$info['order_mobile'],
            ),
            12=>array(
                'content'=>"您的采购单{$order_sn}已定标、未支付，请尽快登录猎芯网，去猎单宝中查看。请在4个工作日内付款，过期自动取消订单。",
                'mobile'=>$info['order_mobile'],
            ),
            13=>array(
                'content'=>"您的采购单{$order_sn}已定标、未支付，请尽快登录猎芯网，去猎单宝中查看。请在1个工作日内付款，过期自动取消订单。",
                'mobile'=>$info['order_mobile'],
            ),
            14=>array(
                'content'=>"您的采购单{$order_sn}过期未付款，已自动取消。若要重新采购，请再次发布采购需求。",
                'mobile'=>$info['order_mobile'],
            ),
            15=>array(
                'content'=>"您的采购单{$order_sn}已发货，物流公司：圆通快递  物流单号：{$info['express_code']} ，请注意签收。",
                'mobile'=>$info['order_mobile'],
            ),
            16=>array(
                'content'=>"您的采购单{$order_sn}已发货，请尽快登录猎芯网，确认签收或申请延期签收，否则1个工作日后将自动签收，货款将转给供应商。",
                'mobile'=>$info['order_mobile'],
            ),
            17=>array(
                'content'=>"有一家供应商退出了需求单{$order_sn} 的竞价，还剩余{$sale_num}家报价。",
                'mobile'=>$info['order_mobile'],
            ),
            18=>array(
                'content'=>"供应商{$info['order_com_name']}取消了竞标单{$order_sn}，交易关闭。若要继续采购，请重新发布需求单。",
                'mobile'=>$info['order_mobile'],
            ),

            21=>array(
                'content'=>"您的竞标单{$order_sn}已中标，请尽快登录猎芯网，去猎单宝中查看。中标单的采购商名称：{$info['order_com_name']}，联系电话：{$info['order_mobile']}。",
                'mobile'=>$info['bid_mobile'],
            ),
            22=>array(
                'content'=>"您的竞标单{$order_sn}已付款，请尽快登录猎芯网，去猎单宝中查看。请在4个工作日内发货，过期款项将自动返还给采购方。",
                'mobile'=>$info['bid_mobile'],
            ),
            23=>array(
                'content'=>"您的竞标单{$order_sn}已付款，请尽快登录猎芯网，去猎单宝中查看。请在1个工作日内发货，过期款项将自动返还给采购方并取消订单。",
                'mobile'=>$info['bid_mobile'],
            ),
            24=>array(
                'content'=>"您的竞标单{$order_sn}过期未发货，订单已自动取消。",
                'mobile'=>$info['bid_mobile'],
            ),
            25=>array(
                'content'=>"采购商取消了需求单{$order_sn}，您的报价失效。",
                'mobile'=>$info['bid_mobile'],
            ),
            26=>array(
                'content'=>"采购商取消了您的竞标单{$order_sn}，您的竞价失败。",
                'mobile'=>$info['bid_mobile'],
            ),

            31=>array(
                'content'=>"采购商已经选定了竞标单{$order_sn}，您的报价失效。",
            ),
        );

        //丢标商家的信息轮循
        if($type == 221){
            $mobiles = M('bid_record')->where(array('order_sn'=>$order_sn, 'bid_status'=>4))->getField('bid_mobile', true);
            $suc = 0;
            foreach ($mobiles as $mobile){
                if($this->webpower_send_sms($mobile, $send_config[$type]['content'])){
                    $suc++;
                }
            }

            if($suc == count($mobiles)){
                return true;
            } else {
                return false;
            }
        }else if($send = $send_config[$type]){
            return $this->webpower_send_sms($send['mobile'], $send['content']);
        }
    }

}